package ArrayList02;

import java.lang.reflect.AnnotatedArrayType;
import java.util.AbstractSequentialList;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class Yanghuisanjiao {

/*

    public List<List<Integer>> fun(int numRow){
        //第一行的值
        List<List<Integer>> ret = new ArrayList<>();
        List<Integer> row = new ArrayList<>();
        row.add(1);
        ret.add(row);



        //新的一行的第一个值
        for(int i = 1; i < numRow; i++){

            //这个rem专门用来存放新一行的所有值的
            List<Integer> rem =  new ArrayList<>();
            rem.add(1);
            //中间的值由preRows是获取他的上一行
            List<Integer> preRow = ret.get( i - 1);
            for(int j = 1; j< i; j++){
                int x = preRow.get(j) + preRow.get(j -1 );
                rem.add(x);

            }
            //新一行的最后一个值
            rem.add(1);
            ret.add(rem);
        }
        return ret;

    }
*/





    public static List<List<Integer>> func(int numRow){

        List<List<Integer>> list = new ArrayList<>();
        List<Integer> rem = new ArrayList<>();
        rem.add(1);
        list.add(rem);


        for(int i = 0;  i < numRow; i++){

            List<Integer> row = new ArrayList<>();
            row.add(1);

            List<Integer> pre = list.get(i - 1);
            for(int j =0 ;j  < i; j++){
                int x = pre.get(j) + pre.get(j -1);
                row.add(x);
            }
            row.add(1);
            list.add(row);
        }
        return list;


    }












}

